package com.augurit.gzcgwsp.excelimportexport.service.impl;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.dozer.DozerBeanMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.augurit.gzcgwsp.excelimportexport.dao.YwRqQyjyxkRqjszdjbDao;
import com.augurit.gzcgwsp.excelimportexport.dao.YwRqQyjyxkRqjszrypbqkDao;
import com.augurit.gzcgwsp.excelimportexport.dao.YwRqQyjyxkRqjszzysbDao;
import com.augurit.gzcgwsp.excelimportexport.entity.YwRqQyjyxkRqjszdjb;
import com.augurit.gzcgwsp.excelimportexport.entity.YwRqQyjyxkRqjszrypbqk;
import com.augurit.gzcgwsp.excelimportexport.entity.YwRqQyjyxkRqjszzysb;
import com.augurit.gzcgwsp.excelimportexport.service.IYwRqQyjyxkRqjszdjbService;
import com.augurit.gzcgwsp.excelimportexport.service.IYwRqQyjyxkRqssylbService;
import com.augurit.gzcgwsp.rqqyjyxk.dao.YwRqQyjyxkFinalRqjszzysbDao;
import com.augurit.gzcgwsp.rqqyjyxk.entity.YwRqQyjyxkFinalRqjszdjb;
import com.augurit.gzcgwsp.rqqyjyxk.entity.YwRqQyjyxkFinalRqjszrypbqk;
import com.augurit.gzcgwsp.rqqyjyxk.entity.YwRqQyjyxkFinalRqjszzysb;
import com.augurit.gzcgwsp.rqqyjyxk.service.IYwRqQyjyxkFinalRqjszdjbService;
import com.augurit.gzcgwsp.rqqyjyxk.service.IYwRqQyjyxkFinalRqjszrypbqkService;
import com.augurit.gzcgwsp.ssylb.entity.YwRqRqssylb;
import com.augurit.gzcgwsp.ywcmn.service.IYwComQyxxService;

/**
 * 广州市燃气经营许可证许可审批------六、燃气接收站、储配站、汽车加气站登记表
 * @author xgw
 *
 */
@Service
@Transactional
public class YwRqQyjyxkRqjszdjbServiceImpl implements IYwRqQyjyxkRqjszdjbService {
	@Autowired
	private YwRqQyjyxkRqjszdjbDao ywRqQyjyxkRqjszdjbDao;
	@Autowired
    private IYwRqQyjyxkFinalRqjszdjbService rqjszdjbService;
	  @Autowired
    private YwRqQyjyxkRqjszrypbqkDao ywRqQyjyxkRqjszrypbqkDao;
     @Autowired
     private YwRqQyjyxkRqjszzysbDao ywRqQyjyxkRqjszzysbDao;
     @Autowired
     private IYwRqQyjyxkFinalRqjszrypbqkService rqjszrypbqkService;
     @Autowired
    private YwRqQyjyxkFinalRqjszzysbDao ywRqQyjyxkFinalRqjszzysbDao;
 	@Autowired
 	private IYwRqQyjyxkRqssylbService ywRqQyjyxkRqssylbService;
 	@Autowired
 	private IYwComQyxxService ywComQyxxService;
	/**
	 * 保存 六、燃气接收站、储配站、汽车加气站登记表
	 * @param ywRqQyjyxkRqjszdjb
	 */
	public void save(YwRqQyjyxkRqjszdjb ywRqQyjyxkRqjszdjb) {
		ywRqQyjyxkRqjszdjbDao.save(ywRqQyjyxkRqjszdjb);
	}
	/**
	 * 解析 六、燃气接收站、储配站、汽车加气站登记表
	 * @param hssfsheet
	 * @param acceptNo
	 * @param qyid
	 * @param username
	 * @return
	 */
	public void parseRqjszdjb(HSSFSheet hssfsheet, String acceptNo,Long qyid, String username, Date dateFalg,String flag,String contextpath,Long rqjyxkid) {
		String ssmc = null;//设施名称
		String ssdz = null;//设施地址	
		String zyfzr = null;//主要负责人
		String aqrzr = null;//安全负责人
		String lxdh = null;//联系电话
		String cz = null;//传  真
		String yyzzzch = null;//营业执照注册号
		String xfyswh = null;//消防验收文号
		String jgysrq = null;//竣工验收日期
		String gczj = null;//工程造价	
		String ydzl = null;//用地种类	
		String zdmj = null;//占地面积
		String azxs = null;//安装形式
		String cgsl = null;//储罐数量	
		String cgzrj = null;//储罐总容积
		String dgzdrj = null;//单罐最大容积
		YwRqQyjyxkRqjszdjb ywRqQyjyxkRqjszdjb = new YwRqQyjyxkRqjszdjb();
		
		//String hql = "from YwRqQyjyxkRqjszdjb t where t.qyid = "+qyid+" and t.flag="+flag+"";
		String hql = "from YwRqQyjyxkRqjszdjb t where t.acceptNo ='"+acceptNo+"'";
		List<YwRqQyjyxkRqjszdjb> list=ywRqQyjyxkRqjszdjbDao.find(hql);
		for(int i=0;i<list.size();i++){
			ywRqQyjyxkRqjszdjbDao.delete(list.get(i));
		}
		
 		try { 			
 			HSSFRow hssfrow = hssfsheet.getRow(0);// 第一行
 				// 遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数
 				for (int j = 2; j < hssfsheet.getPhysicalNumberOfRows(); j++) {
 					hssfrow = hssfsheet.getRow(j);
 					// 判断是否还存在需要导入的数据
 					if (hssfrow == null) {
 						//System.out.println("这里已没有数据，在第" + i + "列,第" + j + "行");
 						break;
 					}
 					if (j == 2) {//第一行
 						if (hssfrow.getCell((short) 2) == null) {//设施名称
 							ssmc = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							ssmc = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							ssmc = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						}
 					} 					
 					if (j == 3) {//第二行
 						if (hssfrow.getCell((short) 2) == null) {//设施地址
 							ssdz = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							ssdz = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							ssdz = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 						
 					}
 					if (j == 4) {//第3行
 						if (hssfrow.getCell((short) 2) == null) {//主要负责人
 							zyfzr = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							zyfzr = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							zyfzr = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 6) == null) {//安全负责人
 							aqrzr = "";
 						} else if (hssfrow.getCell((short) 6).getCellType() == 0) {
 							aqrzr = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							aqrzr = hssfrow.getCell((short) 6).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 5) {//第4行
 						if (hssfrow.getCell((short) 2) == null) {//联系电话
 							lxdh = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							lxdh = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							lxdh = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 6) == null) {//传  真
 							cz = "";
 						} else if (hssfrow.getCell((short) 6).getCellType() == 0) {
 							cz = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							cz = hssfrow.getCell((short) 6).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 6) {//第5行
 						if (hssfrow.getCell((short) 2) == null) {//营业执照注册号
 							yyzzzch = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							yyzzzch = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							yyzzzch = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 6) == null) {//消防验收文号
 							xfyswh = "";
 						} else if (hssfrow.getCell((short) 6).getCellType() == 0) {
 							xfyswh = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							xfyswh = hssfrow.getCell((short) 6).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 7) {//第6行
 						if (hssfrow.getCell((short) 2) == null) {//竣工验收日期
 							jgysrq = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							jgysrq = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							jgysrq = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 6) == null) {//工程造价	
 							gczj = "";
 						} else if (hssfrow.getCell((short) 6).getCellType() == 0) {
 							gczj = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							gczj = hssfrow.getCell((short) 6).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 8) {//第7行
 						if (hssfrow.getCell((short) 2) == null) {//用地种类	
 							ydzl = "";
 						} else if (hssfrow.getCell((short) 2).getCellType() == 0) {
 							ydzl = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							ydzl = hssfrow.getCell((short) 2).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 6) == null) {//占地面积
 							zdmj = "";
 						} else if (hssfrow.getCell((short) 6).getCellType() == 0) {
 							zdmj = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							zdmj = hssfrow.getCell((short) 6).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 9) {//第8行
 						if (hssfrow.getCell((short) 3) == null) {//安装形式
 							azxs = "";
 						} else if (hssfrow.getCell((short) 3).getCellType() == 0) {
 							azxs = new Double(hssfrow.getCell((short) 3).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							azxs = hssfrow.getCell((short) 3).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 7) == null) {//储罐数量	
 							cgsl = "";
 						} else if (hssfrow.getCell((short) 7).getCellType() == 0) {
 							cgsl = new Double(hssfrow.getCell((short) 7).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							cgsl = hssfrow.getCell((short) 7).getStringCellValue().replace(" ", "");
 						}
 					}
 					if (j == 10) {//第9行
 						if (hssfrow.getCell((short) 3) == null) {//储罐总容积
 							cgzrj = "";
 						} else if (hssfrow.getCell((short) 3).getCellType() == 0) {
 							cgzrj = new Double(hssfrow.getCell((short) 3).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							cgzrj = hssfrow.getCell((short) 3).getStringCellValue().replace(" ", "");
 						} 	
 						if (hssfrow.getCell((short) 7) == null) {//单罐最大容积	
 							dgzdrj = "";
 						} else if (hssfrow.getCell((short) 7).getCellType() == 0) {
 							dgzdrj = new Double(hssfrow.getCell((short) 7).getNumericCellValue()).toString();
 						} else {// 如果EXCEL表格中的数据类型为字符串型
 							dgzdrj = hssfrow.getCell((short) 7).getStringCellValue().replace(" ", "");
 						}
 					}
 				}
 			    if(StringUtils.isNotBlank(ssmc)){ 
 					ywRqQyjyxkRqjszdjb.setQyid(qyid);
 					ywRqQyjyxkRqjszdjb.setAcceptNo(acceptNo);
 					ywRqQyjyxkRqjszdjb.setUserName(username);
 					ywRqQyjyxkRqjszdjb.setUploadDate(new Date());
 					ywRqQyjyxkRqjszdjb.setFlag(flag);
 					ywRqQyjyxkRqjszdjb.setSsmc(ssmc);
 					ywRqQyjyxkRqjszdjb.setSsdz(ssdz);
 					ywRqQyjyxkRqjszdjb.setZyfzr(zyfzr);
 					ywRqQyjyxkRqjszdjb.setAqrzr(aqrzr);
 					ywRqQyjyxkRqjszdjb.setLxdh(lxdh);
 					ywRqQyjyxkRqjszdjb.setCz(cz);
 					ywRqQyjyxkRqjszdjb.setYyzzzch(yyzzzch);
 					ywRqQyjyxkRqjszdjb.setXfyswh(xfyswh);
 					ywRqQyjyxkRqjszdjb.setJgysrq(jgysrq);
 					ywRqQyjyxkRqjszdjb.setGczj(gczj);
 					ywRqQyjyxkRqjszdjb.setYdzl(ydzl);
 					if(StringUtils.isNotBlank(zdmj)){
 					   if(zdmj.indexOf("平方米")>=0)
 					      zdmj=zdmj.substring(0,zdmj.indexOf("平方米"));
 					}
 					if(StringUtils.isNotBlank(cgzrj)){
  					   if(cgzrj.indexOf("立方米")>=0)
  						 cgzrj=cgzrj.substring(0,cgzrj.indexOf("立方米"));
  					}
 					if(StringUtils.isNotBlank(dgzdrj)){
  					   if(dgzdrj.indexOf("立方米")>=0)
  						 dgzdrj=dgzdrj.substring(0,dgzdrj.indexOf("立方米"));
  					}
 					ywRqQyjyxkRqjszdjb.setZdmj(zdmj);
 					ywRqQyjyxkRqjszdjb.setAzxs(azxs);
 					ywRqQyjyxkRqjszdjb.setCgsl(cgsl);
 					ywRqQyjyxkRqjszdjb.setCgzrj(cgzrj);
 					ywRqQyjyxkRqjszdjb.setDgzdrj(dgzdrj);
 					ywRqQyjyxkRqjszdjb.setDateFlag(dateFalg);
 					Long id=ywRqQyjyxkRqjszdjbDao.saveEntity(ywRqQyjyxkRqjszdjb);
 					if(id!=null){
 						//将信息导入到设施一览表中
 						List<YwRqRqssylb> ssylbs=ywRqQyjyxkRqssylbService.getSsylbByName(rqjyxkid,ssmc.trim());
 						if(ssylbs!=null && ssylbs.size()>0){
 							YwRqRqssylb sslyb=ssylbs.get(0);
 							String suffixSsmc=sslyb.getSslb();
 							sslyb.setFzr(zyfzr);
 							sslyb.setTotalVol(cgzrj);//总容积
 							sslyb.setSingleVol(dgzdrj);//单罐容积
 							//String suffixSsmc=ssmc.substring(ssmc.length()-3,ssmc.length());
 							if("加气站".equals(suffixSsmc)){
 								sslyb.setSslb("汽车加气站");
 								if("埋地罐".equals(azxs)){
 	 								//设置设施考核 汽车加气站许可登记考核表(地面三级)
 	 								sslyb.setSskh("8");
 	 							}else{
 	 								//设置设施考核 汽车加气站许可登记考核表(地面三级)
 	 								sslyb.setSskh("9");
 	 								
 	 							}
 							}else if("储配站".equals(suffixSsmc)){
 								sslyb.setSslb("储配站");
 								sslyb.setSskh("5");
 							}else if("LNG气化站".equals(suffixSsmc)){
 								sslyb.setSslb("LNG气化站");
 								sslyb.setSskh("11");
 							}else if("人工煤气储配站".equals(suffixSsmc)){
 								sslyb.setSslb("人工煤气储配站");
 								sslyb.setSskh("12");
 							}else{
 								//suffixSsmc=ssmc.substring(ssmc.length()-2,ssmc.length());
 								if("气站".equals(suffixSsmc)){
 									sslyb.setSslb("储配站");
 	 								sslyb.setSskh("5");
 							  }
 							}
 							sslyb.setZdlb("合格");
 							if(ywComQyxxService.get(qyid)!=null){
 								String sqdw=ywComQyxxService.get(qyid).getSqdw();
 								//生成考核表
 	 						    String filepath=ywRqQyjyxkRqssylbService.createFilePathByContent(contextpath, sqdw,sslyb);
 	 						    sslyb.setFilepath(filepath);
 	 						    this.ywRqQyjyxkRqssylbService.saveEntity(sslyb);
 							}
 						}
 					   this.importRqjszrypbqk(hssfsheet, acceptNo, qyid, username, dateFalg, flag,  id);
 					   this.importRqjszzysb(hssfsheet, acceptNo, qyid, username, dateFalg, flag, id);
 					}
 			   }	
 		}catch(Exception e){
 			e.printStackTrace();
 		}
	}
	
	/**
	 * 人员配备情况
	 * @param hssfsheet
	 * @param acceptNo
	 * @param qyid
	 * @param username
	 * @param dateFalg
	 * @param flag
	 * @param gyzid
	 */
	private void importRqjszrypbqk(HSSFSheet hssfsheet, String acceptNo,Long qyid, String username, Date dateFalg,String flag,Long gyzid){
	    String xm = null;//姓名
        String nl = null;//年龄
        String gw = null;//岗位
        String gwjnzsjbh = null;//岗位技能证书及编号
        String fzjg = null;//发证机关
            try {
            
            HSSFRow hssfrow = hssfsheet.getRow(0);// 第一行
            // 遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数
            for (int i = 24; i < hssfsheet.getPhysicalNumberOfRows(); i++) {
                hssfrow = hssfsheet.getRow(i);
                // 判断是否还存在需要导入的数据
                if (hssfrow == null) {
                    // System.out.println("这里已没有数据，在第" + i + "列,第" + j + "行");
                    break;
                }           
                
                if (hssfrow.getCell((short) 1) == null) {//姓名
                    xm = "";
                } else if (hssfrow.getCell((short) 1).getCellType() == 0) {
                    xm = new Double(hssfrow.getCell((short) 1).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    xm = hssfrow.getCell((short) 1).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 2) == null) {//年龄
                    nl = "";
                } else if (hssfrow.getCell((short) 2).getCellType() == 0) {
                    nl = new Double(hssfrow.getCell((short) 2).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    nl = hssfrow.getCell((short) 2).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 3) == null) {//年龄
                    gw = "";
                } else if (hssfrow.getCell((short) 3).getCellType() == 0) {
                    gw = new Double(hssfrow.getCell((short) 3).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    gw = hssfrow.getCell((short) 3).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 4) == null) {//年龄
                    gwjnzsjbh = "";
                } else if (hssfrow.getCell((short) 4).getCellType() == 0) {
                    gwjnzsjbh = new Double(hssfrow.getCell((short) 4).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    gwjnzsjbh = hssfrow.getCell((short) 4).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 6) == null) {//年龄
                    fzjg = "";
                } else if (hssfrow.getCell((short) 6).getCellType() == 0) {
                    fzjg = new Double(hssfrow.getCell((short) 6).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    fzjg = hssfrow.getCell((short) 6).getStringCellValue().trim();
                }               
                    
                if(StringUtils.isEmpty(xm)||"待续".equals(xm)){
                    break;
                }else{
                    YwRqQyjyxkRqjszrypbqk ywRqQyjyxkRqjszrypbqk = new YwRqQyjyxkRqjszrypbqk();
                    ywRqQyjyxkRqjszrypbqk.setQyid(qyid);
                    ywRqQyjyxkRqjszrypbqk.setAcceptNo(acceptNo);
                    ywRqQyjyxkRqjszrypbqk.setUserName(username);
                    ywRqQyjyxkRqjszrypbqk.setUploadDate(new Date());
                    ywRqQyjyxkRqjszrypbqk.setFlag(flag);
                    ywRqQyjyxkRqjszrypbqk.setXm(xm);
                    ywRqQyjyxkRqjszrypbqk.setNl(nl);
                    ywRqQyjyxkRqjszrypbqk.setGw(gw);
                    ywRqQyjyxkRqjszrypbqk.setGwjnzsjbh(gwjnzsjbh);
                    ywRqQyjyxkRqjszrypbqk.setFzjg(fzjg);
                    ywRqQyjyxkRqjszrypbqk.setDateFlag(dateFalg);    
                    ywRqQyjyxkRqjszrypbqk.setGyzdjid(gyzid);
                    this.ywRqQyjyxkRqjszrypbqkDao.save(ywRqQyjyxkRqjszrypbqk);
                    
                }                   
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
	    
	}
	/***
	 * 设备导入
	 * @param hssfsheet
	 * @param acceptNo
	 * @param qyid
	 * @param username
	 * @param dateFalg
	 * @param flag
	 * @param gyzid
	 */
	private void  importRqjszzysb(HSSFSheet hssfsheet, String acceptNo,Long qyid, String username, Date dateFlag,String flag,Long gyzid){
	    String projectName = null;//项目名称
        String xh = null;//型号
        String count = null;//数量
        String backupCount=null;//后备数量
        try {
            HSSFRow hssfrow = hssfsheet.getRow(0);// 第一行
            // 遍历该行所有的行,j表示行数 getPhysicalNumberOfRows行的总数
            for (int i = 12; i <=22; i++) {
                hssfrow = hssfsheet.getRow(i);
                // 判断是否还存在需要导入的数据
                if (hssfrow == null) {
                    // System.out.println("这里已没有数据，在第" + i + "列,第" + j + "行");
                    break;
                }           
                
                if (hssfrow.getCell((short) 2) == null) {//项目名称
                    projectName = "";
                } else if (hssfrow.getCell((short) 2).getCellType() == 0) {
                    projectName = new Double(hssfrow.getCell((short) 1).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    projectName = hssfrow.getCell((short) 2).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 3) == null) {//型号
                    xh = "";
                } else if (hssfrow.getCell((short) 3).getCellType() == 0) {
                    xh = new Double(hssfrow.getCell((short) 3).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    xh = hssfrow.getCell((short) 3).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 4) == null) {//数量
                    count = "";
                } else if (hssfrow.getCell((short) 4).getCellType() == 0) {
                    count = new Double(hssfrow.getCell((short) 4).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    count = hssfrow.getCell((short) 4).getStringCellValue().trim();
                }
                if (hssfrow.getCell((short) 5) == null) {//备用数
                    backupCount = "";
                } else if (hssfrow.getCell((short) 5).getCellType() == 0) {
                    backupCount = new Double(hssfrow.getCell((short) 5).getNumericCellValue()).toString();
                } else {// 如果EXCEL表格中的数据类型为字符串型
                    backupCount = hssfrow.getCell((short) 5).getStringCellValue().trim();
                }
                if(StringUtils.isEmpty(projectName)||"待续".equals(projectName)){
                    break;
                }else{
                    YwRqQyjyxkRqjszzysb ywRqQyjyxkRqjszzysb = new YwRqQyjyxkRqjszzysb();
                    ywRqQyjyxkRqjszzysb.setQyid(qyid);
                    ywRqQyjyxkRqjszzysb.setAcceptNo(acceptNo);
                    ywRqQyjyxkRqjszzysb.setUserName(username);
                    ywRqQyjyxkRqjszzysb.setUploadDate(new Date());
                    ywRqQyjyxkRqjszzysb.setFlag(flag);
                    ywRqQyjyxkRqjszzysb.setProjectName(projectName);
                    ywRqQyjyxkRqjszzysb.setXh(xh);
                    ywRqQyjyxkRqjszzysb.setDateFlag(dateFlag);  
                    ywRqQyjyxkRqjszzysb.setGyzid(gyzid);
                    long countval=0;
                    long backcount=0;;
                    try {
                    	if(StringUtils.isNotBlank(count)){
                    		countval=Long.valueOf(count);
                    	}else{
                    		countval=0l;
                    	}
                        
                        backcount=Long.valueOf(backcount);
                    } catch (RuntimeException e) {
                        e.printStackTrace();
                    }
                    ywRqQyjyxkRqjszzysb.setCount(countval);
                    ywRqQyjyxkRqjszzysb.setBackupCount(backcount);
                    ywRqQyjyxkRqjszzysbDao.save(ywRqQyjyxkRqjszzysb);
                }                   
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
       
	}

	/**
     * 导出 燃气接收站、储配站、汽车加气站登记表
     * 
     * @param hssfsheet
     * @param acceptNo
     * @param qyid
     * @param username
     * @return
     */
    public HSSFSheet expRqjszdjb(HSSFSheet hssfsheet,YwRqQyjyxkFinalRqjszdjb finalentity, YwRqQyjyxkRqjszdjb entity,HSSFCellStyle cs,String exptype){
        HSSFRow hssfrow = hssfsheet.getRow(0);// 第一行
        if("qyxx".equals(exptype)){
            if(finalentity!=null){
                for (int j = 2; j < hssfsheet.getPhysicalNumberOfRows(); j++) {
                    hssfrow = hssfsheet.getRow(j);
                    // 判断是否还存在需要导入的数据
                    if (hssfrow == null) {
                        break;
                    }
                    if (j == 2) {//第1行
                        HSSFCell cell1=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell1.setCellValue(finalentity.getSsmc()==null?"":finalentity.getSsmc());   //设置单元格内容  
                        cell1.setCellStyle(cs); 
                    }
                    if (j == 3) {//第2行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getSsdz()==null?"":finalentity.getSsdz());   //设置单元格内容  
                        cell2.setCellStyle(cs); 
                    }
                    if (j == 4) {//第3行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getZyfzr()==null?"":finalentity.getZyfzr());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getAqrzr()==null?"":finalentity.getAqrzr());   //设置单元格内容 
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 5) {//第4行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getLxdh()==null?"":finalentity.getLxdh());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getCz()==null?"":finalentity.getCz());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 6) {//第5行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getYyzzzch()==null?"":finalentity.getYyzzzch());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getXfyswh()==null?"":finalentity.getXfyswh());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 7) {//第6行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getJgysrq()==null?"":finalentity.getJgysrq());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getGczj()==null?"":finalentity.getGczj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 8) {//第7行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getYdzl()==null?"":finalentity.getYdzl());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getZdmj()==null?"":finalentity.getZdmj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 9) {//第8行
                        HSSFCell cell2=hssfrow.createCell((short)3);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getAzxs()==null?"":finalentity.getAzxs());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)7);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getCgsl()==null?"":finalentity.getCgsl());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 10) {//第9行
                        HSSFCell cell2=hssfrow.createCell((short)3);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(finalentity.getCgzrj()==null?"":finalentity.getCgzrj());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)7);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(finalentity.getDgzdrj()==null?"":finalentity.getDgzdrj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                }
               }
        }else{
            if(entity!=null){
                for (int j = 2; j < hssfsheet.getPhysicalNumberOfRows(); j++) {
                    hssfrow = hssfsheet.getRow(j);
                    // 判断是否还存在需要导入的数据
                    if (hssfrow == null) {
                        break;
                    }
                    if (j == 2) {//第1行
                        HSSFCell cell1=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell1.setCellValue(entity.getSsmc()==null?"":entity.getSsmc());   //设置单元格内容  
                        cell1.setCellStyle(cs); 
                    }
                    if (j == 3) {//第2行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getSsdz()==null?"":entity.getSsdz());   //设置单元格内容  
                        cell2.setCellStyle(cs); 
                    }
                    if (j == 4) {//第3行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getZyfzr()==null?"":entity.getZyfzr());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getAqrzr()==null?"":entity.getAqrzr());   //设置单元格内容 
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 5) {//第4行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getLxdh()==null?"":entity.getLxdh());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getCz()==null?"":entity.getCz());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 6) {//第5行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getYyzzzch()==null?"":entity.getYyzzzch());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getXfyswh()==null?"":entity.getXfyswh());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 7) {//第6行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getJgysrq()==null?"":entity.getJgysrq());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getGczj()==null?"":entity.getGczj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 8) {//第7行
                        HSSFCell cell2=hssfrow.createCell((short)2);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getYdzl()==null?"":entity.getYdzl());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)6);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getZdmj()==null?"":entity.getZdmj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 9) {//第8行
                        HSSFCell cell2=hssfrow.createCell((short)3);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getAzxs()==null?"":entity.getAzxs());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)7);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getCgsl()==null?"":entity.getCgsl());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                    if (j == 10) {//第9行
                        HSSFCell cell2=hssfrow.createCell((short)3);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell2.setCellValue(entity.getCgzrj()==null?"":entity.getCgzrj());   //设置单元格内容 
                        cell2.setCellStyle(cs); 
                        HSSFCell cell6=hssfrow.createCell((short)7);   //创建一个单元格  HSSFCell类表示单元格  // 四个参数分别是：起始行，起始列，结束行，结束列 
                        cell6.setCellValue(entity.getDgzdrj()==null?"":entity.getDgzdrj());   //设置单元格内容
                        cell6.setCellStyle(cs); 
                    }
                }
               }
        }

        return hssfsheet;
    }
    
    public List<YwRqQyjyxkRqjszdjb> getListByAcceptNo(String acceptNo){
        String hql = "from YwRqQyjyxkRqjszdjb t where t.acceptNo='"+acceptNo+"'";
        List<YwRqQyjyxkRqjszdjb> entityList = ywRqQyjyxkRqjszdjbDao.find(hql);
        return entityList;
    }
    
    

    public Map importFinalQyData(String acceptNo, Long qyid) {
        List<YwRqQyjyxkRqjszdjb>  list=getDatas(acceptNo,qyid);
        if(list!=null && list.size()>0){
                for(YwRqQyjyxkRqjszdjb data:list){
                    YwRqQyjyxkFinalRqjszdjb entity = new DozerBeanMapper().map(data, YwRqQyjyxkFinalRqjszdjb.class);
                    entity.setQyid(qyid);
                     entity.setId(null);
                    Long id=rqjszdjbService.save(entity);
                    if(id!=null){
                        //人员
                        List<YwRqQyjyxkRqjszrypbqk> datas=this.getRyDatas(acceptNo,data.getId());
                        for(YwRqQyjyxkRqjszrypbqk pbqk:datas){
                            YwRqQyjyxkFinalRqjszrypbqk finalentity = new DozerBeanMapper().map(pbqk, YwRqQyjyxkFinalRqjszrypbqk.class);
                            finalentity.setId(null);
                            finalentity.setGyzid(id);
                            this.rqjszrypbqkService.save(finalentity);
                        }
                        //设备
                        List<YwRqQyjyxkRqjszzysb> sbdatas=this.getszzysbDatas(acceptNo, qyid);
                        for(YwRqQyjyxkRqjszzysb sbdata:sbdatas){
                            YwRqQyjyxkFinalRqjszzysb finalentity = new DozerBeanMapper().map(sbdata, YwRqQyjyxkFinalRqjszzysb.class);
                            finalentity.setId(null);
                            finalentity.setGyzid(id);
                            this.ywRqQyjyxkFinalRqjszzysbDao.save(finalentity);
                        }
                    }
                }
        }
      
       return null;
    }

 
    private List<YwRqQyjyxkRqjszdjb> getDatas(String acceptNo, Long qyid){
        String sql=" from "+YwRqQyjyxkRqjszdjb.class.getName()+" where qyid='"+qyid+"' and acceptNo='"+acceptNo+"'";
        return this.ywRqQyjyxkRqjszdjbDao.find(sql);
    }
    
    
    /**
     * 
     * @return
     */
    private  List<YwRqQyjyxkRqjszrypbqk> getRyDatas(String acceptNo, Long gyzdjid){
        String hql = "from YwRqQyjyxkRqjszrypbqk t where t.gyzdjid='" + gyzdjid +"'";
        return this.ywRqQyjyxkRqjszrypbqkDao.find(hql);
    }
    

    /**
     * 
     * @return
     */
    private List<YwRqQyjyxkRqjszzysb> getszzysbDatas(String acceptNo, Long qyid){
        String hql = "from YwRqQyjyxkRqjszzysb  where qyid='" + qyid + "' and acceptNo='"+acceptNo+"'";
        return this.ywRqQyjyxkRqjszzysbDao.find(hql);
    }
    
    /**
     * 
     */
    public YwRqQyjyxkRqjszdjb getZdInfo(String zdid) {
        YwRqQyjyxkRqjszdjb entity=null;
       if(StringUtils.isNotBlank(zdid)){
            entity= ywRqQyjyxkRqjszdjbDao.getEntity(Long.valueOf(zdid));
       }
        return entity;
    }
}
